]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
appDisplay: Add items in order
authorGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>
Wed, 20 May 2020 00:31:45 +0000 (21:31 -0300)
committerGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>
Thu, 18 Jun 2020 13:31:57 +0000 (10:31 -0300)
Add app icons to the exact page and position they're located
instead of always appending. This will be useful later when
custom icon positions are in place.

For now, it assumes pages are always filled, which is true,
but this will also change with custom icon positions.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1271

js/ui/appDisplay.js

index 54237fa882ae21530b3bbb47d4baf7d27511cbbc..f50d9158cbe451ce0120557e5e1f1eb0b0ea83ba 100644 (file)
@@ -159,12 +159,16 @@ var BaseAppView = GObject.registerClass({
         });
 
         // Add new app icons
+        const { itemsPerPage } = this._grid;
         addedApps.forEach(icon => {
             let iconIndex = newApps.indexOf(icon);
 
             this._orderedItems.splice(iconIndex, 0, icon);
-            this._grid.addItem(icon);
             this._items.set(icon.id, icon);
+
+            const page = Math.floor(iconIndex / itemsPerPage);
+            const position = iconIndex % itemsPerPage;
+            this._grid.addItem(icon, page, position);
         });
 
         this._viewIsReady = true;
@@ -445,7 +449,12 @@ class AppDisplay extends BaseAppView {
         let newIdx = Util.insertSorted(this._orderedItems, item, this._compareItems);
 
         this._grid.removeItem(item);
-        this._grid.addItem(item, -1, newIdx);
+
+        const { itemsPerPage } = this._grid;
+        const page = Math.floor(newIdx / itemsPerPage);
+        const position = newIdx % itemsPerPage;
+        this._grid.addItem(item, page, position);
+
         this.selectApp(item.id);
     }